/**
 * 
 */
package de.gee.erep.client.calls.rpc;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

import de.gee.erep.shared.rpctypes.action.ServiceAction;
import de.gee.erep.shared.rpctypes.responses.ServiceResponse;
import de.gee.erep.shared.rpctypes.responses.impls.GetCitizenDetailsResponse;

/**
 * @author Matthew Gee created: 10.05.2011
 */
@RemoteServiceRelativePath("citizenService")
public interface CitizenService extends RemoteService {
	/**
	 * 
	 * @param <T> Type of Response
	 * @param action the ServiceAction
	 * @return Type
	 * @throws Exception the Exception while Transfer
	 */
	<T extends ServiceResponse> T execute(ServiceAction<T> action)
			throws Exception;
}
